/*
Utilities:  brief Definition of utilities classes from fui.
    Copyright (C) 2012  Jorge E. A. Atala
                        FuDePAN
    This file is part of the Fui Proyect.

    Fui is free software: you can redistribute it and/or modify
    it under the terms of the GNU General Public License as published by
    the Free Software Foundation, either version 3 of the License, or
    (at your option) any later version.

    Fui is distributed in the hope that it will be useful,
    but WITHOUT ANY WARRANTY; without even the implied warranty of
    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
    GNU General Public License for more details.

    You should have received a copy of the GNU General Public License
    along with Fui.  If not, see <http://www.gnu.org/licenses/>.
*/

#ifndef UTILITIES_H
#   define UTILITIES_H
#   include <utility>
#   include <algorithm>
namespace fui
{
/*! \addtogroup Utilities
 *  \{
 */

/*!
 *  The \p pair struct couples together a pair of values, which may
 *  be of different types (\p T1 and \p T2). The individual values
 *  can be accessed through the public members \p first and \p second.
 *
 *  \see make_pair
 *  \see swap
 */
using std::pair;

/*!
 *  \p make_pair it's a function constructor for pair struct that
 *  permit to avoid the complex verbose involucrated in this operation.
-*
 *  \param first The first element of the pair.
 *  \param second The second element of the pair.
 *  \return The pair of the two previous elements.
 *
 *  \see pair
 */
using std::make_pair;

/*!
 *  \p swap Assigns the content of \p first to \p second and the content
 *  of \p second to \p first.
-*
 *  \param first The first element to swap.
 *  \param second The second element to swap.
 *
 *  \see pair
 */
using std::swap;


/*!
 * \}
 */
}
#endif

